// pages/citylist/citylist.js
const map = require('../../libs/map')
// 引入 QQMapWX
const QQMapWX = require('../../libs/qqmap-wx-jssdk')
const qqmapsdk = new QQMapWX({
  key: 'A7CBZ-FZ73U-PUPV7-BINEG-ICD57-KAB6J'//申请的腾讯位置服务秘钥
})

Page({

  /** 页面的初始数据 */
  data: {
    isloced: false,
    cityname:'未选择',
    letter: 'A',
    citymap: map  // 将城市的完整数据存入citymap变量
  },

  /** 点击侧边栏导航后执行该方法 */
  tapAside(event){
    let letter = event.target.dataset.letter;
    console.log(letter);
    // 更新data
    this.setData({letter});
  },

  /** 当点击城市列表项时触发 */
  tapCityItem(event){
    let city = event.target.dataset.city;
    //console.log(city);
    if(city==undefined)  return;
    // 将选中项城市存入globalData  回到上一页即可
    getApp().globalData.cityname = city;
    wx.navigateBack();
  },

  /** 加载当前城市名称，显示在左上角 */
  getLocation(){
    qqmapsdk.reverseGeocoder({
      success: (res)=>{
        console.log(res)
        // 从结果中解析出城市名称
        let city = res.result.address_component.city
        // 修改data.cityname  更新界面
        this.setData({
          cityname: city,
          isloced: true  // 提示已经加载到城市名称
        })
        // 将city存入globalData
        getApp().globalData.cityname = city;
      },
      fail: (err)=>{
        console.log(err)
        // 提示定位失败，点击重试
        this.setData({
          cityname: '定位失败，点击重试'
        })
        if(err.status==1000){ // 用户拒绝了定位权限
          // 弹出模态对话框，提示用户赋予权限
          wx.showModal({
            title: '提示',
            content: '小程序未获取定位权限，是否授予权限？',
            success: (res)=>{
              if(res.confirm){ // 用户点了确认
                // 跳转到设置页面
                wx.openSetting({
                  success: (settingRes)=>{
                    //console.log(settingRes)
                    if(settingRes.authSetting['scope.userLocation']){
                      this.getLocation();  // 重新定位
                    }
                  }
                })
              }
            }
          })
        }
      }
    })
  },

  /** 当点击当前定位城市的text组件后执行 */
  tapLoc(){
    // 如果已经获取了当前定位的位置，则存入globalData返回上一页
    if(this.data.isloced){
      getApp().globalData.cityname = 
        this.data.cityname;
      wx.navigateBack();
    }else{
      // 如果没有获取当前定位位置
      this.setData({
        cityname: '定位中...'
      })
      this.getLocation();
    }

  },

  /** 生命周期函数--监听页面加载 */
  onLoad: function (options) {
    //console.log(map)
    this.getLocation();  // 获取定位位置
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})